package gitee.derumin.really_forge.items;

import net.minecraft.item.Items;
import net.minecraft.item.ToolMaterial;
import net.minecraft.recipe.Ingredient;
import net.minecraft.registry.tag.ItemTags;

public enum ExtraToolMaterial implements ToolMaterial {

    COPPER_FOR_HAMMER(1,825,12.0f,6.0f,15,Ingredient.ofItems(Items.COPPER_INGOT)),
    COPPER(1,180,8.0f,2.0f,15,Ingredient.ofItems(Items.COPPER_INGOT)),
    WOOD_FOR_HAMMER(0,79,3f,1.0f,15,Ingredient.fromTag(ItemTags.PLANKS)),
    STONE_FOR_HAMMER(1,250,6.0f,2.0f,5,Ingredient.fromTag(ItemTags.STONE_TOOL_MATERIALS)),
    IRON_FOR_HAMMER(2,960,10.0f,4.0f,14,Ingredient.ofItems(Items.IRON_INGOT)),
    DIAMOND_FOR_HAMMER(3,254,3f,2.0f,10,Ingredient.ofItems(Items.DIAMOND)),
    GOLD_FOR_HAMMER(0,283,16.0f,8.0f,22,Ingredient.ofItems(Items.GOLD_INGOT)),
    NETHERITE_FOR_HAMMER(4,2031,10.0f,5.0f,15,Ingredient.ofItems(Items.NETHERITE_INGOT));

    private final int miningLevel;
    private final int itemDurability;
    private final float miningSpeed;
    private final float attackDamage;
    private final int enchantability;
    private final Ingredient repairIngredient;

    ExtraToolMaterial(int miningLevel, int itemDurability, float miningSpeed, float attackDamage, int enchantability, Ingredient repairIngredient){
        this.miningLevel = miningLevel;
        this.itemDurability = itemDurability;
        this.miningSpeed = miningSpeed;
        this.attackDamage = attackDamage;
        this.enchantability = enchantability;
        this.repairIngredient = repairIngredient;
    }
    @Override
    public int getDurability() {
        return this.itemDurability;
    }

    @Override
    public float getMiningSpeedMultiplier() {
        return this.miningSpeed;
    }

    @Override
    public float getAttackDamage() {
        return this.attackDamage;
    }

    @Override
    public int getMiningLevel() {
        return this.miningLevel;
    }

    @Override
    public int getEnchantability() {
        return this.enchantability;
    }

    @Override
    public Ingredient getRepairIngredient() {
        return this.repairIngredient;
    }
}
